package com.irdstudio.efp.esb.common.constant;

import java.util.Optional;
import java.util.stream.Stream;

/**
 * @description:ESB请求常量类
 * @date:2018年12月18日 下午7:09:04
 * @author:hengyh
 */
public class ESBClientConstance {

	/*-------------------SysHead 常量---------------------*/
	public static final String CnsmrSysNo = "2003000"; 
	public static final String SUCESS_CODE = "000000";
	/** 平台ID B00001：广州银行智慧银行中心 */
	public static final String PlafmID = "B00001"; 
	/** 平台ID R00001：马上 */ 
	public static final String msPlafmID = "R00001"; 
	/** 平台ID R00002：百度 */
	public static final String bdPlafmID = "R00002"; 
	
	/** 法人 */
	public static final String Company = "GCB"; 
	
	public enum TxnMd {ONLINE, ASYNC} // 交易模式 ONLINE-同步 ASYNC-异步
	public enum UsrLng {CHINESE, ENGLISH} // 用户语言，默认中文
	// 文件标志 0-无文件 1-请求有文件传送 2-应答有文件 3-应答有文件流数组
	public enum FileFlg {
		NONE("0"), REQ("1"), RESP("2"), RESP_ARRAY("3");
		public final String VALUE;
		private FileFlg (String code) { VALUE = code; }
	}
	// 加密方式 0-硬加密 1-软加密 2-无加密
	public enum EryptMd {
		HARD("0"), SOFT("1"), NONE("2");
		public final String VALUE;
		private EryptMd (String code) { VALUE = code; }
	}
	
	/*-------------------AppHead 常量---------------------*/
	/** 机构ID */
//	public static final String InstId = "0316";
	// add by wangyk3
//	public static final String InstId = "1701"; 
	public static final String InstId = "0328"; 
	/** 用户编号   （默认值） */
	public static final String UsrNo = "90087";
	/** 马上用户编号   （默认值） */
	public static final String msUsrNo = "98135";
	/** 渠道类型  WD：网贷 */
	public static final String CnlTp = "WD";
	/** 老核心多借多贷机构ID */
	public static final String InstIdHx = "0090";

	public static final String bdInstId = "0043";
	public static final String msInstId = "0328";
	public static final String wsdInstId = "0368";


	/**
	 * 优e贷在互金的产品类型
	 */
	public static final String YED_PROD_TYPE = "10003003";

	/**
	 * 普税贷 预授信 授信调用风控审批需要上送的报文头instid
	 */
	public static final String HPJRBORGID = "0052";
	//机构号 客户建档案要送
	public static String psdInstId = "psd0043";
	public static String psdCreditInstId = "0052";
	/*-------------------响应状态码---------------------*/
	public enum RetSt {
		SUCCESS("S"), FAIL("F");
		public final String VALUE;
		private RetSt (String code) { VALUE = code; }
		public static RetSt parse(String code) {
			Optional<RetSt> ret = Stream.of(values()).filter(i -> i.VALUE.equals(code)).findFirst();
			return ret.orElse(RetSt.SUCCESS); // 默认S
		}
	}
}
